09. 反向传播算法:示例(第二部分)

反向传播算法:示例(第二部分)

既然我们已经理解了链式法则,我们可以继续用反向传播算法示例,计算梯度

12反向传播算法:示例 B V6 最后一节

在我们示例中,只包含一个隐藏层,所以我们的反向传播算法过程将包含两个步骤:

第1步:计算权重向量的梯度W^2(从输出到隐藏层)。
第2步:计算权重矩阵的梯度W^1 (从隐藏层到输入)。

第1步
(请注意,此处引用的权重向量是W^2。为了简化符号,计算过程中省略了涉及W^2的所有指数。

_方程式13_

方程式13

你可能会记得:

\large\Delta W_{ij}=\alpha(d-y) \frac{\partial y}{\partial W_{ij}}

在这个具体步骤中,由于输出只是单一数值,所以我们可以用下面的方式重写方程式(其中我们有一个权重向量):

\large\Delta W_i=\alpha(d-y) \frac{\partial y}{\partial W_i}

由于我们已经计算了梯度,我们现在知道第一步所需要的递增数值是:

\Delta W_i=\alpha(d-y) h_i

方程式14

计算递增数值后,我们可以用以下方法更新向量W^2

_方程式15_

方程式15

第2步
(在这一步中,我们将需要使用两个权重矩阵。因此,我们不会忽略权重指标。)

在第二步中,我们会通过计算权重矩阵W^1的偏导数y,更新权重矩阵W^1 y

通过以下方式使用链式法则:

得到关于\bar{h}的偏导数y,并用它乘以W^1中对应要素的偏导数。除了参考向量\bar{h},我们可以观察每个要素,使用以下方式表示方程式:

_方程式16_

方程式16

在这个示例中,我们有包含三个神经元的单个隐藏层,因此这是三个要素的线性组合:

_方程式17_

方程式17

我们将分别计算每个导数。首先计算\frac{\partial y}{\partial h_j},然后计算\frac{\partial h_j}{\partial W^1_{ij}}

_方程式18_

方程式18

请注意大部分的导数是零,这样解答较为简单 \frac{\partial y}{\partial h_{j}}=W^2_j

为了计算\frac{\partial h_j}{\partial W^1_{{ij}}},我们首先要牢记

_方程式19_

方程式19

因此:

_方程式20_

方程式20

由于函数\ h_j是一个线性组合的激活函数(\Phi),它的偏导数按照以下方式计算:

_方程式21_

方程式21

考虑到存在各种激活函数,我们将使用常用符号保留偏导数\Phi。根据我们选择使用的激活函数,每个神经元 j 都有自己的数值\Phi\Phi'

_方程式22_

方程式22

方程式 21 中第二个计算可以用下列方法:

(注意结果非常简单,因为这个偏导数的大部分导数都是零)。

_方程式23_

方程式23

我们理解如何处理方程式 21 中每个乘法后,可以按照以下方式进行求和:

_方程式24_

方程式24

我们准备结束第2步,其中我们通过计算公式17中所示的梯度,更新权重矩阵W^1。根据以上计算,我们可以总结得到:

_方程式25_

方程式25

由于\Delta W^1_{ij}=\alpha(d-y) \large\frac{\partial y}{\partial W^1_{ij}},结束第2步时,我们得出:

_Equation 26_

Equation 26

计算递增数值后,我们可以用以下方法更新向量W^1

W^1_{new}=W^1_{previous}+\Delta W^1_{ij}

W^1_{new}=W^1_{previous}+\alpha(d-y)W^2_j\Phi'_jx_i

方程式 27

更新权重矩阵后,我们再次从前馈传导开始,从头开始更新权重的过程。

这个视频涉及迷你批量训练。在接下来超参数课程中,我们将进一步解释这些内容。